Tone mapping is a technique used in image processing and computer graphics processing to map one set of pixel values (e.g. luminance and/or chrominance values) to another set of pixel values in order to give the impression of a higher dynamic range than is actually available. A range of pixel values of an original image are mapped to a different range of tone-mapped pixel values to achieve a “better” appearance for the image, which for example may be better in the sense that the contrast is enhanced, the detail in the image is improved, or the dynamic range is increased, etc.
One approach for applying tone mapping is to calculate a global tone mapping curve for an image which defines the correspondence between the input and output pixel intensity levels for all of the pixels in the image. As an example, where the tone mapping is to be applied to images captured by a camera, the global tone mapping curve may be fixed once a particular camera mode has been set, and typically would not be updated during the processing a sequence of images (e.g. when recording video). The technique for extracting the global tone mapping curve may be different in different systems but the underlying aim of the global tone mapping is to assign a bigger range of output pixel values to the most frequently occurring pixel values of the original image.
FIG. 1 shows an example system of applying global tone mapping to an original image 102, which comprises original luminance values 104 and original chrominance values 106, to thereby determine a tone mapped image 108 which comprises tone-mapped luminance values 110 and corrected chrominance values 112. A histogram 114 of the luminance values is determined. The histogram shows the distribution of the luminance values across the range of available luminance values (e.g. from 0 to 255 where the luminance values each comprise 8 bits). The histogram 114 is used to determine a tone mapping curve 116 which describes a suitable tone-mapping for mapping the luminance values of the image to tone-mapped luminance values. The tone mapping curve 116 has the original luminance values along the x-axis and the tone-mapped luminance values on the y-axis. The tone-mapping curve 116 may for example be determined by integrating the histogram 114. A mapping module 118 then uses the tone mapping curve 116 to map the original luminance values 104 to the tone-mapped luminance values 110. A chrominance processing module 120 uses the tone-mapped luminance values 110 to correct the original chrominance values 106 to thereby determine the corrected chrominance values 112 of the tone-mapped image 108.
The application of a single, global tone mapping curve for the whole image as described above may provide a general appearance improvement but all the pixels of the image with the same pixel value have to be mapped to the same output value, regardless of the pixel values of the surrounding area. Therefore, the use of a global mapping curve is a limited solution in terms of local enhancement of image areas with specific characteristics.